Relating Functional and Imperative Session Types
نویسندگان
چکیده
Imperative session types provide an imperative interface to session-typed communication. In such interface, channel references are first-class objects with operations that change the typestate of channel. Compared functional type APIs, program structure is simpler at surface, but required model current state communication throughout. Following early work explored approach, a significant body on has neglected approach and opts for uses linear manage soundly. We demonstrate subsumes by exhibiting typing semantics preserving translation into system types. further show untyped backwards from calculus preserving. restrict becomes Thus, we precisely capture difference in expressiveness two calculi conclude lack largely due restrictions imposed its system.
منابع مشابه
Lightweight Functional Session Types
Row types provide an account of extensibility that combines well with parametric polymorphism and type inference. We discuss the integration of row types and session types in a concurrent functional programming language, and how row types can be used to describe extensibility in session-typed communication.
متن کاملAsynchronous Functional Session Types
Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static type checking. Applications include network protocols, business processes, and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifi...
متن کاملNon-Blocking Concurrent Imperative Programming with Session Types
Concurrent C0 is an imperative programming language in the C family with session-typed messagepassing concurrency. The previously proposed semantics implements asynchronous (non-blocking) output; we extend it here with non-blocking input. A key idea is to postpone message reception as much as possible by interpreting receive commands as a request for a message. We implemented our ideas as a tra...
متن کاملSession Types for Functional Multithreading
We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static typechecking. A session type, associated with a communication channel, specifies the state transitions of a protocol and also the data types of messages associated with transitions; thus typechecking can verify both correctness of individual messages and ...
متن کاملExistential Types for Imperative Languages
We integrate existential types into a strongly typed C-like language. In particular, we show how a bad combination of existential types, mutation, and aliasing can cause a subtle violation of type safety. We explore two independent ways to strengthen the type system to restore safety. One restricts the mutation of existential packages. The other restricts the types of aliases of existential pac...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Logical Methods in Computer Science
سال: 2022
ISSN: ['1860-5974']
DOI: https://doi.org/10.46298/lmcs-18(3:33)2022